#include <bits/stdc++.h>

using namespace std;

const int N=110,M=1e4+10;

int n,m;
long long a[M];
long long mp[N][N];

int main() 
{
	cin>>n>>m;
	for(int i=1;i<=m;i++) cin>>a[i];
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++) cin>>mp[i][j];
	}
	
	for(int k=1;k<=n;k++)
	{
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++) mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);
		} 
	}
	
	long long ret=0;
	for(int i=2;i<=m;i++)
	{
		ret+=mp[a[i-1]][a[i]];
	}
	cout<<ret<<endl;
	return 0;
}
